正则表达式入门参考
match()
match()方法会从 字符串的起始位置匹配正则表达式 ,如果匹配,就返回匹配成功的结果,如果不匹配,就返回none。
基本使用
1 | import re |
匹配目标
1 | # 匹配目标 |
通用匹配 & 贪婪与非贪婪
1 | # 通用匹配 |
修饰符
1 | result = re.match('Hello.*is',content,re.S) # 传入修饰符 |
- re.I:忽视大小写
- re.L:做本地化识别匹配
- re.M:多行匹配,影响^和$
- re.S:使.匹配包括换行在内的所有字符
- re.U:根据Unicode字符集解析字符,影响\w,\W,\b,\B
- re.X:该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解
转义匹配
当遇到使用正则匹配模式的特殊字符时,在前面加上 ’ \ ’ ,来匹配原始字符。
search()
search()在匹配时,会扫描整个字符串,然后返回第一个成功匹配的结果,成功匹配返回匹配内容,如果匹配失败返回None。和match()的区别,match更适合用来检测字符串是不是符合正则表达式的规则,而search匹配字符串内是否有符合正则表的是规则的内容。使用方法与match()大同小异。
findall()
findall()是爬虫用到最多的方法,它会搜索整个字符串,然后返回匹配正则表达式的所有内容。爬虫是爬数据,所以返回内容才是最关键的。如果有返回的话,就是返回一个列表类型,列表内的元素是元组类型,所以需要遍历来依次获取每组内容。
sub()
1 | import re |
compile()
可以将正则表达式编译成正则表达式对象,可以在之后的匹配中复用。
1 | content = 'aabcdefg' |
Xi2A5SCk55Q1Wow6DdCjhQ==